package main
/**
给你一个二叉树，请你返回其按 层序遍历 得到的节点值。 （即逐层地，从左到右访问所有节点）。

 

示例：
二叉树：[3,9,20,null,null,15,7],

    3
   / \
  9  20
    /  \
   15   7
返回其层序遍历结果：

[
  [3],
  [9,20],
  [15,7]
]
 */
type TreeNode struct {
	Val int
	Left *TreeNode
	Right *TreeNode
}
func levelOrder(root *TreeNode) [][]int {
	var ans  [][]int
	var levelOrderHepler func(root *TreeNode,level int)
	levelOrderHepler = func(root *TreeNode,level int) {
		if root == nil {
			return
		}
		if level == len(ans) {
			ans = append(ans, []int{})
		}
		ans[level] = append(ans[level], root.Val)
		if root.Left != nil {
			levelOrderHepler(root.Left,level+1)
		}
		if root.Right != nil {
			levelOrderHepler(root.Right,level+1)
		}
	}
	levelOrderHepler(root,0)
	return ans
}

func main() {

}
